In [ ]:
import geopandas as gpd
import requests

policeStationUrl = 'https://donnees.montreal.ca/dataset/91f66001-b461-4f63-aff4-cddc0fe30ffe/resource/c9d0b8d6-c7a6-4766-a5cc-98e8b1392bbc/download/pdq.geojson'
responseBody = requests.get(url = policeStationUrl).json()
In [ ]:
policeStations = gpd.GeoDataFrame.from_features(responseBody['features'], crs="EPSG:4326")
path = './data/crimes.geojson'
crimes = gpd.read_file(path)
In [ ]:
# Explore the police Stations dataset
policeStations.head(10)
policeStations.describe()
# policeStations.explore()
policeStations
Out[ ]:
geometry NO_CIV_LIE PREFIX_TEM NOM_TEMP DIR_TEMP MUN_TEMP DESC_LIEU LATITUDE LONGITUDE X Y
0 POINT (-73.80730 45.49440) 4 139 BOUL SOURCES DES None DDO POSTE DE QUARTIER 4 45.49440000020 -73.80730000050 280782.05001043 5039432.26350284
1 POINT (-73.61740 45.57770) 8 930 BOUL PIE-IX None MTL POSTE DE QUARTIER 30 45.57770000030 -73.61739999990 295637.788999419 5048650.25593691
2 POINT (-73.54590 45.55690) 4 555 RUE HOCHELAGA None MTL POSTE DE QUARTIER 23 45.55690000020 -73.54590000030 301216.518466975 5046333.03628669
3 POINT (-73.70100 45.52850) 11 756 BOUL O'BRIEN None MTL POSTE DE QUARTIER 10 45.52850000000 -73.70100000040 289099.727535319 5043195.53540243
4 POINT (-73.61560 45.60770) 6 100 BOUL HENRI-BOURASSA None MTN POSTE DE QUARTIER 39 45.60769999960 -73.61560000010 295783.071193995 5051984.0191112
5 POINT (-73.81590 45.44790) 395 BOUL ST-JEAN None PCL POSTE DE QUARTIER 5 45.44789999910 -73.81589999980 280089.579955731 5034267.33261144
6 POINT (-73.59870 45.48640) 21 STRE STANTON None WES POSTE DE QUARTIER 12 45.48640000080 -73.59870000000 297084.713826585 5038502.02478708
7 POINT (-73.58500 45.46370) 1 625 AVEN EGLISE DE L' None MTL POSTE DE QUARTIER 15 45.46370000020 -73.58500000000 298152.961783205 5035978.15076701
8 POINT (-73.50540 45.64160) 1 498 BOUL ST-JEAN-BAPTISTE None MTL POSTE DE QUARTIER 49 45.64159999970 -73.50540000010 304379.047761402 5055744.93770751
9 POINT (-73.60910 45.53980) 920 RUE BELANGER None MTL POSTE DE QUARTIER 35 45.53979999940 -73.60910000000 296279.817149857 5044437.45458332
10 POINT (-73.69670 45.51840) 1 761 RUE GRENET None VSL POSTE DE QUARTIER 7 45.51840000040 -73.69670000020 289432.854483541 5042072.28170154
11 POINT (-73.85230 45.44730) 2 883 BOUL ST-CHARLES None KIR POSTE DE QUARTIER 1 45.44730000010 -73.85230000040 277241.997024429 5034212.48671688
12 POINT (-73.67710 45.43440) 170 AVEN 15E None LAC POSTE DE QUARTIER 8 45.43439999970 -73.67710000000 290943.528353861 5032733.80073099
13 POINT (-73.55300 45.60500) 6 850 BOUL JOSEPH-RENAUD None ANJ POSTE DE QUARTIER 46 45.60500000040 -73.55300000030 300665.742551828 5051678.82781134
14 POINT (-73.66210 45.45980) 5 501 AVEN WESTMINSTER None CSL POSTE DE QUARTIER 9 45.45979999940 -73.66210000030 292122.833263554 5035554.01227912
15 POINT (-73.56310 45.51650) 1 669 RUE BERRI None MTL POSTE DE QUARTIER 21 45.51649999990 -73.56309999990 299870.159929065 5041844.24970038
16 POINT (-73.57520 45.52550) 1 033 RUE RACHEL E MTL POSTE DE QUARTIER 38 45.52549999950 -73.57519999980 298925.754820475 5042845.24124566
17 POINT (-73.62170 45.41550) 8 745 BOUL LASALLE None LAS POSTE DE QUARTIER 13 45.41550000010 -73.62170000000 295274.898787297 5030625.41093936
18 POINT (-73.55100 45.52170) 1 200 AVEN PAPINEAU None MTL POSTE DE QUARTIER 22 45.52170000040 -73.55100000000 300815.868680692 5042421.45838719
19 POINT (-73.65160 45.49610) 7 405 AVEN MOUNTAIN-SIGHTS None MTL POSTE DE QUARTIER 26 45.49609999920 -73.65160000040 292951.604697723 5039586.42891631
20 POINT (-73.56930 45.54240) 4 807 RUE MOLSON None MTL POSTE DE QUARTIER 44 45.54240000060 -73.56929999960 299388.254281215 5044722.94219975
21 POINT (-73.65360 45.56860) 1 805 RUE FLEURY E MTL POSTE DE QUARTIER 27 45.56860000080 -73.65359999980 292810.707843807 5047643.72786048
22 POINT (-73.57330 45.45920) 750 RUE WILLIBRORD None VER POSTE DE QUARTIER 16 45.45920000040 -73.57330000030 299067.450996659 5035477.16629009
23 POINT (-73.85720 45.48610) 14 680 BOUL PIERREFONDS DE None PRF POSTE DE QUARTIER 3 45.48609999940 -73.85720000040 276877.866253688 5038526.01218613
24 POINT (-73.58640 45.63330) 8 200 BOUL MAURICE-DUPLESSIS None MTL POSTE DE QUARTIER 45 45.63330000080 -73.58640000040 298063.769945476 5054826.14961521
25 POINT (-73.63550 45.53710) 8 225 AVEN ESPLANADE DE L' None MTL POSTE DE QUARTIER 31 45.53710000030 -73.63549999990 294217.598320268 5044140.54151282
26 POINT (-73.57650 45.49610) 1 432 RUE STE-CATHERINE O MTL POSTE DE QUARTIER 20 45.49609999920 -73.57650000040 298821.093301904 5039578.09620065
27 POINT (-73.51510 45.57770) 6 905 RUE NOTRE-DAME E MTL POSTE DE QUARTIER 48 45.57770000030 -73.51510000040 303621.555435005 5048643.66281027
28 POINT (-73.59410 45.58530) 8 181 BOUL LACORDAIRE None STL POSTE DE QUARTIER 42 45.58530000040 -73.59410000030 297457.174208208 5049492.46234478
In [ ]:
# Explore the crimes dataset
# crimes.describe()
# crimes.inf()
# crimesGroupByCategorie = crimes.dissolve("CATEGORIE")
crimes.head(10)
In [ ]:
# crimes.explore("CATEGORIE", legend="true")
crimes = crimes.filter(items=['CATEGORIE', 'DATE', 'PDQ', "geometry"])
crimes.shape
crimes
Out[ ]:
CATEGORIE DATE PDQ geometry
0 Vol de véhicule à moteur 2018-09-13 30.0 POINT (-73.62678 45.56778)
1 Vol de véhicule à moteur 2018-04-30 30.0 POINT (-73.62678 45.56778)
2 Vol de véhicule à moteur 2018-09-01 7.0 POINT (-73.68593 45.51912)
3 Méfait 2017-07-21 21.0 POINT (-76.23729 0.00000)
4 Méfait 2017-07-29 12.0 POINT (-76.23729 0.00000)
... ... ... ... ...
267678 Vols qualifiés 2023-03-26 35.0 POINT (-76.23729 0.00000)
267679 Vol de véhicule à moteur 2023-03-08 35.0 POINT (-76.23729 0.00000)
267680 Vol de véhicule à moteur 2023-04-19 35.0 POINT (-76.23729 0.00000)
267681 Méfait 2023-04-13 44.0 POINT (-76.23729 0.00000)
267682 Méfait 2023-01-04 35.0 POINT (-76.23729 0.00000)

267683 rows × 4 columns

In [ ]:
stoledCar = crimes[crimes["CATEGORIE"].str.contains("Vol de véhicule à moteur")]
stoledCar2023 = stoledCar[stoledCar["DATE"].str.contains("2023-")]

Questions¶

  1. Est-ce-qu'il y a une progression du nombre de crimes par ans sur l'ensemble de la période ?
  2. Est-ce-qu'il y a un effet de saisonnalité dans les crimes ?
  3. Est-ce-qu'il y a un jour plus propice au vol de voitures ?
In [ ]:
stoledCar2023.explore("PDQ", legend=False, tiles="CartoDB dark_matter")
/Users/ublai7c/anaconda3/envs/geoenv/lib/python3.11/site-packages/geopandas/explore.py:400: FutureWarning: is_categorical_dtype is deprecated and will be removed in a future version. Use isinstance(dtype, CategoricalDtype) instead
  elif pd.api.types.is_categorical_dtype(gdf[column]):
Out[ ]:
Make this Notebook Trusted to load map: File -> Trust Notebook